import { Delete, Get, Post, Put } from "@/http/http";
import {
  DictForm,
  DictPageResult,
  DictQuery,
  DictTypeForm,
  DictTypePageResult,
  DictTypeQuery,
} from "./types";

/**
 * 字典类型分页列表
 *
 * @param queryParams
 */

export function getDictTypePage(
  queryParams: DictTypeQuery
): Promise<DictTypePageResult> {
  return Get("/api/v1/dict_type/page", queryParams);
}
// export function getDictTypePage(
//   queryParams: DictTypeQuery
// ): AxiosPromise<DictTypePageResult> {
//   return request({
//     url: "/api/v1/dict/types/page",
//     method: "get",
//     params: queryParams,
//   });
// }

/**
 * 字典类型表单数据
 *
 * @param id
 */
export function getDictTypeForm(id: number): Promise<DictTypeForm> {
  return Get("/api/v1/dict_type/" + id + "/form");
  // return request({
  //   url: "/api/v1/dict/types/" + id + "/form",
  //   method: "get",
  // });
}

/**
 * 新增字典类型
 *
 * @param data
 */
export function addDictType(data: DictTypeForm) {
  return Post("/api/v1/dict_type", data);
  // return request({
  //   url: "/api/v1/dict/types",
  //   method: "post",
  //   data: data,
  // });
}

/**
 * 修改字典类型
 *
 * @param id
 * @param data
 */
export function updateDictType(id: number, data: DictTypeForm) {
  return Put("/api/v1/dict_type/" + id, data);
  // return request({
  //   url: "/api/v1/dict/types/" + id,
  //   method: "put",
  //   data: data,
  // });
}

/**
 * 删除字典类型
 */
export function deleteDictTypes(ids: string) {
  return Delete("/api/v1/dict_type/" + ids);
  // return request({
  //   url: "/api/v1/dict/types/" + ids,
  //   method: "delete",
  // });
}

/**
 * 获取字典类型的数据项
 *
 * @param typeCode 字典类型编码
 */
// export function getDictOptions(typeCode: string): AxiosPromise<OptionType[]> {
//   return request({
//     url: "/api/v1/dict/" + typeCode + "/options",
//     method: "get",
//   });
// }
export function getDictOptions(typeCode: string): Promise<OptionType[]> {
  return Get("/api/v1/dict/" + typeCode + "/options", {});
}

/**
 * 字典分页列表
 */
export function getDictPage(queryParams: DictQuery): Promise<DictPageResult> {
  return Get("/api/v1/dict/page", queryParams);
  // return request({
  //   url: "/api/v1/dict/page",
  //   method: "get",
  //   params: queryParams,
  // });
}

/**
 * 获取字典表单数据
 *
 * @param id
 */
export function getDictFormData(id: number): Promise<DictForm> {
  return Get("/api/v1/dict/" + id + "/form");
  // return request({
  //   url: "/api/v1/dict/" + id + "/form",
  //   method: "get",
  // });
}

/**
 * 新增字典
 *
 * @param data
 */
export function addDict(data: DictForm) {
  return Post("/api/v1/dict", data);
  // return request({
  //   url: "/api/v1/dict",
  //   method: "post",
  //   data: data,
  // });
}

/**
 * 修改字典项
 *
 * @param id
 * @param data
 */
export function updateDict(id: number, data: DictForm) {
  return Put("/api/v1/dict/" + id, data);
  // return request({
  //   url: "/api/v1/dict/" + id,
  //   method: "put",
  //   data: data,
  // });
}

/**
 * 删除字典
 *
 * @param ids 字典项ID，多个以英文逗号(,)分割
 */
export function deleteDict(ids: string) {
  return Delete("/api/v1/dict/" + ids);
  // return request({
  //   url: "/api/v1/dict/" + ids,
  //   method: "delete",
  // });
}
